package com.woniuxy.project115.kaer.user.service;

import com.woniuxy.project115.kaer.user.dto.LoginDto;
import com.woniuxy.project115.kaer.user.dto.UserInfoDto;
import com.woniuxy.project115.kaer.user.entity.UserInfo;
import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.project115.kaer.user.form.RealNameAuthForm;
import com.woniuxy.project115.kaer.user.param.AccountRegisterParam;
import com.woniuxy.project115.kaer.user.param.CodeRegisterParam;
import com.woniuxy.project115.kaer.user.param.ScoreChangeParam;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author fyy
 * @since 2025年02月17日
 */
public interface UserInfoService extends IService<UserInfo> {

    void accountRegister(AccountRegisterParam arp)throws Exception;

    void sendRegisterCode(String phone)throws Exception;

    void codeRegister(CodeRegisterParam bean)throws Exception;

    void sendLoginCode(String phone)throws Exception;

    LoginDto smsLogin(String phone, String code)throws Exception;

    LoginDto accountLogin(String account, String password, HttpServletRequest req)throws Exception;


    void scoreChange(ScoreChangeParam bean)throws Exception;

    void realNameAuth(RealNameAuthForm raf)throws Exception;

    List<UserInfoDto> getAllUserInfo();

    void banUser(Integer userId,Integer state)throws Exception;

    UserInfoDto getUserById(Integer userId)throws Exception;
}
